Trilium은 파일 이름 대신 노트 ID로 각 노트를 구분합니다. 일반적으로 새 노트를 만들 때 영문 대소문자와 숫자로 이루어진 12자리 ID를 무작위로 생성합니다.

가져오기와 내보내기의 영향

노트를 내보내면 ID도 메타데이터에 기록됩니다. 하지만 다시 가져올 때는 모든 노트에 새 ID를 부여합니다. 첨부 파일처럼 함께 가져오는 다른 항목도 새 ID를 받습니다.

ID 충돌

ID는 길이가 정해져 있고 무작위로 만들어지므로 비둘기집 원리에 따라 기존 노트와 같은 ID가 생성될 가능성이 있습니다.

사용할 수 있는 문자가 62개이고 길이가 12자리이므로 가능한 ID 수는 \(62^{12}\)개입니다. 원문은 Nano ID 충돌 계산기를 이용해 매시간 1000개의 노트를 약 900년 동안 만들어야 충돌 확률이 1% 정도가 된다고 설명합니다.

이처럼 가능성이 매우 작아 Trilium은 별도의 충돌 방지 절차를 두지 않습니다. 고유 해시를 사용하는 Git에도 비슷한 문제가 있습니다. 이론적으로 충돌이 발생하면 기존 노트를 새 노트가 덮어쓸 가능성이 있습니다.